Soru & Cevap

Java ile Android studioda görsele tıklayınca ses çalmasını istiyorum denedim çok ama başaramadm yardım ederseniz sevinirim

20.02.2023 - 07:56

Sorunu çözemedim yardım edin lütfen 

79 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user gmyucalfarukeren
gmyucalfarukeren
20.02.2023 - 09:16

Merhabalar Şevdin, Android Studio'da bir görsele tıklanınca ses çalması için aşağıdaki adımları izleyebilirsiniz

  1. İlk olarak, res klasörü altında raw adında bir klasör oluşturun. Eğer raw klasörü zaten varsa bu adımı atlayabilirsin

  2. raw klasörü altına, çalmak istediğiniz ses dosyasını ekleyin. Örneğin, example.mp3 adında bir dosya ekleyebilirsin

  3. Görüntüleyici sınıfınızın içinde, görsele tıklanma olayını yakalamak için bir OnClickListener uygulayın

imageView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // Burada ses dosyasını çalabilirsin
    }
});
  1. Ses dosyasını çalmak için MediaPlayer sınıfını kullanabilirsiniz. Bu sınıf, raw klasöründeki ses dosyalarını çalmak için özel olarak tasarlanmıştır. Aşağıdaki kodu kullanarak, example.mp3 adlı dosyayı çalabilirsin
MediaPlayer mediaPlayer = MediaPlayer.create(getApplicationContext(), R.raw.example);
mediaPlayer.start();
  1. MediaPlayer nesnesini kullanmadan önce, onPause() veya onStop() gibi yöntemlerde durdurmanız gerektiğinden emin olun. Örneğin
@Override
protected void onPause() {
    super.onPause();
    if (mediaPlayer != null) {
        mediaPlayer.release();
        mediaPlayer = null;
    }
}

Bu kod, onPause() yöntemi çağrıldığında, MediaPlayer nesnesini durduracak ve bellekten serbest bırakacak

Tamamlanmış kod örneği aşağıda verdim

 

imageView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        MediaPlayer mediaPlayer = MediaPlayer.create(getApplicationContext(), R.raw.example);
        mediaPlayer.start();
        mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            @Override
            public void onCompletion(MediaPlayer mp) {
                mediaPlayer.release();
                mediaPlayer = null;
            }
        });
    }
});

@Override
protected void onPause() {
    super.onPause();
    if (mediaPlayer != null) {
        mediaPlayer.release();
        mediaPlayer = null;
    }
}